package com.yin;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import java.util.ArrayList;

public class codeAuto {
    public static void main(String[] args) {
        //创建代码生成器对象
        AutoGenerator generator = new AutoGenerator();

        /*全局设置*/
        GlobalConfig config = new GlobalConfig();//全局配置对象
        //先获取当前系统用户目录
        String projectPath = System.getProperty("user.dir");
        //生成的代码存放目录
        config.setOutputDir(projectPath + "/src/main/java/");
        //设置代码作者
        config.setAuthor("尹kk");
        //设置是否覆盖原来的代码
        config.setFileOverride(false);
        //设置service服务的名字 去service前缀
        config.setServiceName("%sService");
        //设置实体类主键ID类型
        config.setIdType(IdType.ID_WORKER);
        //设置日期生成类型
        config.setDateType(DateType.ONLY_DATE);
        //配置Swagger日志(是否开启)
        config.setSwagger2(true);
        // 自定义文件命名，注意 %s 会自动填充表实体属性！
        config.setControllerName("%sController");
        config.setServiceName("%sService");
        config.setServiceImplName("%sServiceImpl");
        config.setMapperName("%sMapper");
        config.setXmlName("%sMapper");
        //将全局变量设置放入代码生成器中
        generator.setGlobalConfig(config);

        //数据源配置
        DataSourceConfig sourceConfig = new DataSourceConfig();
        //设置数据库类型
        sourceConfig.setDbType(DbType.MYSQL);
        //设置数据库Url
        sourceConfig.setUrl("jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8&useUnicode=true&character=utf-8");
        //设置数据库驱动名字
        sourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
        //设置数据库用户名
        sourceConfig.setUsername("root");
        //设置数据库密码
        sourceConfig.setPassword("123456");
        generator.setDataSource(sourceConfig);

        //包名设置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setEntity("pojo");
        packageConfig.setMapper("dao");
        //packageConfig.setModuleName("service");
        packageConfig.setServiceImpl("service.impl");
        packageConfig.setController("controller");
        packageConfig.setParent("com.yin");
        generator.setPackageInfo(packageConfig);



        //执行生成器对象
        generator.execute();
    }

}
